uniapp和nodejs的移动商城 | 您所在的位置:网站首页 › uniapp vue版本 › uniapp和nodejs的移动商城 |
一:新建项目及相关准备
1.添加公共的css文件。 2.在iconfont网站找需要用的图标,引入。 这里会遇到图标不显示的问题,查了很多资料,发现这个文章有用uniapp引入iconfont_旭陌小生的博客-CSDN博客_uniapp 引入iconfont 二:顶部的开发使用app-plus配置,里面的titleNView,配置顶部导航(以下是titleNView的配置项) 具体配置,利用浮动配置一左一右两个图片,text是阿里图标中的unicode码 直接输入swiper就会快捷生成swiper,当图片添加进去后,需要设置图片宽度为100%。但是swiper组件中高度是默认的,所以swiper高度要与轮播图图片一致,才能完全显示。 效果是随着顶部的点击,下面也显示出对应的内容 首先渲染数据 此时还无法实现滚动,需要给父元素设定宽高,并不允许换行,子元素转换成行内块元素 选定谁谁高亮效果 首先定义一个索引 ,如果索引与当前的序号相同,则不变。如果不同,则改为选中的状态 下一步,实现顶部滑块的点击,使得下面内容随之改变 1.首先下面放一个swiper,里面写上每个滑块对应的内容 然后使用change事件,当curren改变时会调用change事件,此时我们把change绑定为上面滑块的index,当上面滑块index改变时就会触发下面的change事件。
当下面的内容滚动时,上面滑块也会跟着变化,但是不会动态变化,就是内容不会滑动。 给上面的滑块设定一个scroll-into-view,且设置id(id不能以数字开头) 当滑块变化时设置对应的index 此时上面的滑块就会跟着变化 。 当我们将之前写好的组件放入swiper中时,会发现只显示了一小部分内容,原因是swiper有默认的高度。 解决办法:在onReady中获取节点的高度。 给swiper的高度赋值,即可显示完整。 首先全局安装 npm install express-generator -g 接着进入app中安装 express --view=ejs server 然后根据提示安装 安装后启动后端(npm start),如图是成功的 在server文件夹下的router里写接口 写完重启服务器,即可访问到数据 前端访问后端的地址,在onLoad函数访问 但此时并没有输出,因为我们是本地测试,不是访问远程服务器的接口,所以需要 1:电脑手机同一个wifi。 2不能用localhost,改为ip 查找电脑的ip,将localhost替换。 此时我们也能得到数据a 可以成功请求到数据,所以我们将需要的数据写到这个路径下 然后将请求数据的方法封装 将原有的topBar删除,使用接口赋值 再定义一个新数据newTopBar来对应渲染不同的Tabbar 传递数据并渲染 但是最后却会有多个“猜你喜欢” 解决办法:使用template标签,把Card与另一个组件放一起,且Card必须放在下面,还有判断条件需放在template中 旧写法 正确写法 修改可视区高度问题下面这种api已经无法获取高度,因为这个类里面有组件且有数据渲染 因此不用这个方法,使用scroll-view标签 用另一个api来测试可视区域的高,用可视区的高减去滑块高 根据不同滑块显示不同数据 每次滑动数据添加一个判断 上拉加载更多 定义一个变量,初始值为‘上拉加载更多’,当触底后,调用函数 传入函数并判断执行 在request.js文件中对请求进行封装 export default{ common:{ baseUrl:'http://192.168.43.243:3000/api', data:{}, header:{ "Content-Type":"application/json", "Content-Type":"application/x-www-form-urlencoded", }, method:"GET", dataType:'json' }, request(options={}){ uni.showLoading({ title:'加载中' }) // console.log(1); options.url=this.common.baseUrl+options.url; options.data=options.data||this.common.data; options.header=options.header||this.common.header; options.method=options.method||this.common.method; options.dataType=options.dataType||this.common.dataType; return new Promise((res,rej)=>{ uni.request({ ...options, success: (result) => { if(result.statusCode!=200){ return rej() } let data=result.data.data; res(data) // 请求成功后取消加载中 setTimeout(function(){ uni.hideLoading(); },500); } }) }) } }然后在组件中引入 搜索功能 点击标题栏进入搜索,要利用到页面生命周期中的onNavigationBarButtonTap 根据我们按钮的位置来跳转 原生搜索框 接着是搜索页下面的开发,略 点击搜索跳转 搜索结果页面排序 1.点击谁谁高亮 箭头高亮以及翻转箭头 搜索 顶栏搜索框 软键盘搜索按钮
最近搜索 搜索记录本地存储 清除搜索记录 搜索词传值 在onLoad可以读取到传递的值 安装数据库 建表写数据。。(略) 连接数据库 获取接口的数据 根据搜索结果渲染数据 根据属性排序 给选项加上key 再使用计算属性,先获取当前的对象,根据status的不同传递desc或asc给后台 store目录下的index.js文件 引入cart仓库 在main.js中挂载 引入仓库里的数据 添加全选事件 放入仓库的action中
最后在页面渲染即可 此时i,实现了单选功能。且点击全选后,单击某一个选中的商品,也能取消全选。(因为之前写过getter,类似computed的功能) 删除 选择城市的插件 mpvue-picker - DCloud 插件市场 下载到component的uni下,并在相关页面引入 引入相关方法 此时三级联动就能显示 点击确定后返回相关城市的值 把值赋给city并显示 新增收货地址 将地址存入vuex中 写数据 保存地址 新增地址 往list数组里插入数据 提交的数据是通过双向绑定的 点击修改地址 修改地址与新增地址的跳转路径一样,之后跳转的页面根据有无参数来判断是从哪里跳过来的 如果是从修改按钮跳转,则重新渲染数据 点击保存,判断是否是修改数据,如果是,传递数据给仓库更新数据 我的订单页面 未完,待续 |
CopyRight 2018-2019 实验室设备网 版权所有 |